import pandas as pd
import pymysql
import unittest

'''
# 读取csv文件的csv文件为,分隔
# 创建读取对象
data = pd.read_csv('data/lj_data.csv')
# 读取前五条数据
print(data.head())
# 读取前10条
print(data.head(10))
# 读取形状(行和列)
print(data.shape)
# 查看索引
print(data.index)
# 查看字段名
print(data.columns)
'''

'''
# 读取xlsx文件
# 创建读取对象
data = pd.read_excel('data/user_login.xls')
# 读取前五条数据
print(data.head())
# 读取前10条
print(data.head(10))
# 读取形状(行和列)
print(data.shape)
# 查看索引
print(data.index)
# 查看字段名
print(data.columns)
'''

'''
# 读取mysql信息
# 创建读取对象
conn = pymysql.connect(host='localhost', user='root', password='h518518', database='zhangsan', port=3306, charset='utf8')
data = pd.read_sql('select * from student', conn)
# 读取前五条数据
print(data.head())
# 读取前10条
print(data.head(10))
# 读取形状(行和列)
print(data.shape)
# 查看索引
print(data.index)
# 查看字段名
print(data.columns)
'''

'''
# unittest方式
class DemoTastCase(unittest.TestCase):
    def test01(self):
        print("test01")

    def test02(self):
        print('test02')

    def mytest03(self):
        print('mytest03')


if __name__ == '__main__':
    # 调用上面所有带test前缀的方法 verbosity=0 简单模式 verbosity=1 一般模式 verbosity=2 详细模式 需要以python方式运行
    unittest.main(verbosity=2)
'''

'''
# 断言跳过
class DemoTestCase(unittest.TestCase):
    # 无条件跳过
    @unittest.skip
    def test01(self):
        # 断言1==1,断言失败就显示'断言失败'
        self.assertEqual(1, 1, '断言失败')

    # 条件成立就跳过,条件不成立就不跳过
    @unittest.skipIf(1 == 1, '条件成立')
    def test02(self):
        # 断言1 == 2不成立,断言失败显示'断言失败'
        self.assertNotEqual(1 == 2, '断言失败')

    # 条件不成立就跳过,条件成立就不跳过
    @unittest.skipUnless(1 == 2, '条件不成立')
    def test03(self):
        # 断言'a'在'abc'里面, 断言失败就显示'断言失败'
        self.assertIn('a', 'abc', '断言失败')

    # 预计条件会抛出错误会跳过
    @unittest.expectedFailure
    def test04(self):
        self.assertIs(1, 1, '断言失败')


if __name__ == '__main__':
    unittest.main(verbosity=2)
'''


# 夹具
class DemoTestCase(unittest.TestCase):
    # 所有的test运行前执行这的代码
    @classmethod
    def setUpClass(cls) -> None:
        print("开始执行")

    def setUp(self) -> None:
        print('test方法调用前执行')

    def tearDown(self) -> None:
        print('test方法结束后执行')

    def test01(self):
        print('test01')

    def test02(self):
        print('test02')

    def test03(self):
        print('test03')

    # 所有的test借宿运行后执行的代码
    @classmethod
    def tearDownClass(cls) -> None:
        print('结束执行')


if __name__ == '__main__':
    unittest.main(verbosity=2)
